<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="http://osble.org/Services/OsbleService.svc?xsd=xsd2" namespace="http://schemas.datacontract.org/2004/07/OSBLE.Models.Courses" />
  <xs:import schemaLocation="http://osble.org/Services/OsbleService.svc?xsd=xsd3" namespace="http://schemas.datacontract.org/2004/07/OSBLE.Models.Assignments" />
  <xs:element name="GetCourses">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCoursesResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/OSBLE.Models.Courses" minOccurs="0" name="GetCoursesResult" nillable="true" type="q1:ArrayOfCourse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCoursesTaught">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCoursesTaughtResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q2="http://schemas.datacontract.org/2004/07/OSBLE.Models.Courses" minOccurs="0" name="GetCoursesTaughtResult" nillable="true" type="q2:ArrayOfCourse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UploadCourseGradebook">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="courseID" type="xs:int" />
        <xs:element minOccurs="0" name="zipData" nillable="true" type="xs:base64Binary" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UploadCourseGradebookResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="UploadCourseGradebookResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCourseAssignments">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCourseAssignmentsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://schemas.datacontract.org/2004/07/OSBLE.Models.Assignments" minOccurs="0" name="GetCourseAssignmentsResult" nillable="true" type="q3:ArrayOfAssignment" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMergedReviewDocument">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="criticalReviewAssignmentId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMergedReviewDocumentResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMergedReviewDocumentResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetReviewItems">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="assignmentId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetReviewItemsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetReviewItemsResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SubmitReview">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="authorId" type="xs:int" />
        <xs:element minOccurs="0" name="assignmentId" type="xs:int" />
        <xs:element minOccurs="0" name="zippedReviewData" nillable="true" type="xs:base64Binary" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SubmitReviewResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="SubmitReviewResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAssignmentSubmission">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="assignmentId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAssignmentSubmissionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAssignmentSubmissionResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCourseRole">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="courseId" type="xs:int" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCourseRoleResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q4="http://schemas.datacontract.org/2004/07/OSBLE.Models.Courses" minOccurs="0" name="GetCourseRoleResult" nillable="true" type="q4:CourseRole" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SubmitAssignment">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="assignmentId" type="xs:int" />
        <xs:element minOccurs="0" name="zipData" nillable="true" type="xs:base64Binary" />
        <xs:element minOccurs="0" name="authToken" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SubmitAssignmentResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="SubmitAssignmentResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>